//
//  ReConnect.swift
//  Trans
//
//  Created by zcj on 2024/12/25.
//  description: 重建连接，主要有一点，只有数据的接收端发送该数据，而作为文件的发送端只需要发送请求即可 。
//  发送方需要发送是数据的发送者还是接受者（通过side），接受到reconnect数据的是client，就要开启新的链接，然后回应reconnect。

import Foundation
class ReConnect:BaseData{
    //0 表示是client的一方， 1 是Listener的一方
    var side:INT32 = 0
    //0 表示是请求， 1表示是回应
    var reconnectType:INT32 = 0
    init(side: INT32,type:INT32) {
        self.side = side
        self.reconnectType = type
        super.init()
    }
    
    enum CodingKeys: String, CodingKey{
        case side
        case reconnectType
    }
    
    required init(from decoder: any Decoder) throws {
        let container = try decoder.container(keyedBy:CodingKeys.self)
        side = try container.decode(INT32.self, forKey: .side)
        reconnectType = try container.decode(INT32.self, forKey: .reconnectType)
        try super.init(from: decoder)
    }
    
    override func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(side, forKey: .side)
        try container.encode(reconnectType, forKey: .reconnectType)
        try super.encode(to: encoder)
    }
    
    override func getType() -> UINT32 {
        return RECONNECT;
    }
}
